/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaDatos;

import CapaSeguridad.CodigoErrorEnum;
import CapaSeguridad.GuateBayException;
import java.sql.ResultSet;
import java.util.LinkedList;

/**
 *
 * @author BlackEmpires
 */
public class Shipping_DAO implements DAO{

    private String sentenciaSQL;
    ConexionDB conexion;
    LinkedList<Shipping_POJO> listaDetalle = new LinkedList<Shipping_POJO>();
    ResultSet resultado;
    int valor = -1;

    public Shipping_DAO() {

        conexion = new ConexionDB();
    }

    @Override
    public LinkedList<Shipping_POJO> obtenerReg(int id) {

        sentenciaSQL = "SELECT * FROM shipping WHERE idShipping=" + id;

        try {
            conexion.abrirConexion();
            resultado = conexion.getResultSet(sentenciaSQL);

            if (resultado.next()) {
                Shipping_POJO objShipping = new Shipping_POJO();
                objShipping.setCosto(Double.parseDouble(resultado.getString("costo")));
                objShipping.setIdRegion(Integer.parseInt(resultado.getString("idRegion")));
                objShipping.setIdShipping(Integer.parseInt(resultado.getString("idShipping")));
                objShipping.setNombre(resultado.getString("nombre"));
                objShipping.setTipo(resultado.getString("tipo"));

                listaDetalle.add(objShipping);
                //System.out.println("Resultado " + resultado.getString("costo"));
            }

        } catch (Exception ex) {
            System.out.println("error " + ex);
            return null;
        }
        conexion.cerrarConexion();
        return listaDetalle;
    }

    public int guardarReg(String pNombre, Double pCosto, String pTipo, int pIdRegion) {

        //Tipos de datos en la BD idShipping int,nombre varchar(45),costo float4, tipo varchar(45),idRegion int 
        sentenciaSQL = "INSERT INTO shipping(nombre,costo,tipo,idRegion) VALUES ("
                + "'" + pNombre + "'," + pCosto + ",'" + pTipo + "'," + pIdRegion + ")";

        //System.out.println("INSERT "+sentenciaSQL);
        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);
            //System.out.println ("Insert exitoso");

        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;
        }
        conexion.cerrarConexion();
        return valor;
    }

    public int actualizarReg(int pIdShipping, String pNombre, Double pCosto, String pTipo, int pIdRegion) {

        sentenciaSQL = "UPDATE shipping SET nombre = '" + pNombre + "',costo = "
                + pCosto + ",tipo ='" + pTipo + "',idRegion=" + pIdRegion
                + " WHERE idShipping = " + pIdShipping;

        //System.out.println(sentenciaSQL);
        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);
            //System.out.println ("Insert exitoso");

        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;
        }
        conexion.cerrarConexion();
        return valor;
    }

    @Override
    public int eliminarReg(int id) {

        sentenciaSQL = "DELETE FROM shipping WHERE idShipping=" + id;

        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);
        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;
        }
        conexion.cerrarConexion();
        return valor;

    }
	
	
	public Shipping_POJO getPrecioRegion(int idRegion) throws GuateBayException{
        sentenciaSQL = "SELECT * FROM shipping WHERE idRegion=" + idRegion;
        Shipping_POJO objShipping = null;
        try {
            conexion.abrirConexion();
            resultado = conexion.getResultSet(sentenciaSQL);

            if (resultado.next()) {
                objShipping = new Shipping_POJO();
                objShipping.setCosto(Double.parseDouble(resultado.getString("costo")));
                objShipping.setIdRegion(Integer.parseInt(resultado.getString("idRegion")));
                objShipping.setIdShipping(Integer.parseInt(resultado.getString("idShipping")));
                objShipping.setNombre(resultado.getString("nombre"));
                objShipping.setTipo(resultado.getString("tipo"));
                //System.out.println("Resultado " + resultado.getString("costo"));
            }

        } catch (Exception ex) {
            System.out.println("error " + ex);
            throw new GuateBayException(ex,"Error en transacción",CodigoErrorEnum.ErrorRegion);            
        }
        conexion.cerrarConexion();
        return objShipping;
    }
}
